import { Effect, ImmerReducer, Reducer, Subscription } from 'umi';
import {lister} from '../services/index';

export interface IndexModelState {
  name: string;
}

export interface IndexModelType {
  namespace: 'index';
  state: IndexModelState;
  effects: {
    lister:Effect
  };
  reducers: {
    save: Reducer<IndexModelState>;
    // 启用 immer 之后
    // save: ImmerReducer<IndexModelState>;
  };
  subscriptions?: { setup: Subscription };
}


// const IndexModel: IndexModelType = {
//   namespace: 'index',

//   state: {
//     name: '',
//     age:'18',

//   },

//   //异步action
//   // effects: {
//   //   *getBanner({ payload }, { call, put }) {
//   //     let results = yield call(getBanner,100,200);
//   //     yield put({
//   //       type:'save',
//   //       payload:{
//   //         name:results
//   //       }
//   //     })
//   //   },
//   // },
//   //同步action
//   reducers: {
//     save(state, action) {
//       return {
//         ...state,
//         ...action.payload,
//       };
//     },

//   },
//   // subscriptions: {
//   //   setup({ dispatch, history }) {
//   //     return history.listen(({ pathname }) => {
//   //       if (pathname === '/') {
//   //         dispatch({
//   //           type: 'query',
//   //         });
//   //       }
//   //     });
//   //   },
//   // },
// };

// export default IndexModel;